# 文件读取方式一：

# f = open('student.txt','r',encoding='utf-8')

# print(f.read()) #读取这个文件全部内容
# 关闭文件
# f.close()
"""open()：
第一个为文件所在路径：可以是绝对路径/相对路径
第二个为打开方式：r是可读，w是可以写入，a是追加写入
第三个是设置编码：utf-8"""
# 文件读取方式二：使用with上下文管理，这种方式不需要手动关闭文件
# with open('student.txt','r',encoding='utf-8') as f:
#     print(f.read())
"""
with open(文件地址,模式,编码) as f:  # 起了一个别名
   f.read() #读取全部的内容
"""
# 文件写入方式一：
"""f = open('student_info.txt','w',encoding='utf-8') # 用w模式可以写入，如果这个文件之前不存在，则是新增；如果存在，则是内容覆盖
f.write("软件测试开发")
f.close() # 关闭文件"""

# 文件写入方式二：w模式，如果文件不存在则是新增；文件存在写入就会覆盖
"""with open('student1.txt','w',encoding='utf-8') as f:
    f.write('好健康\n社会琳\n可欣\n莹\n荣旭')"""

#文件追加写入方式一： 在文件的末尾，继续写入
"""f = open('student.txt','a',encoding='utf-8')
f.write("\n小白\n")
f.close()"""

#文件追加写入方式二：
"""name = input("请输入你要新增的名字")
with open('student.txt','a',encoding='utf-8') as f:
    f.write("\n"+name)"""
# 综合案例一：图书管理系统
"""
图书管理系统：
1、新增图书
2、修改图书
3、删除图书
4、查看所有的图书
存到book.txt文件里面
"""
"""
book_dict = {}
while True:
    print("欢迎来到图书管理系统！")
    print("请您选择对应的选项：")
    print("1、新增图书")
    print("2、修改图书")
    print("3、删除图书")
    print("4、查看所有的图书")
    print("5、退出图书管理系统")
    r = input("请输入选项：")
    if r=="1":
        book_name = input("请您输入要新增的图书名称")
        with open("book.txt",'r',encoding='utf-8') as f:
            list_r = f.readlines() # 读取所有的文件行
        if book_name not in list_r:
            zuo = input("请您输入要新增的图书作者")
            book_dict[book_name] = {"图书作者":zuo} # {”哆啦A梦“:{"图书作者":"大熊"}}
            print(f"图书新增成功：{book_name}，图书作者为：{zuo}")
            with open('book.txt','a',encoding='utf-8') as f:
                f.write(f"{book_name}，{zuo}\n")
        else:
            print("图书已经存在了，新增是失败的！")
    elif r=="2":
        # book_name_old = input("请您输入要修改的图书名称")
        # with open('book.txt','r',encoding='utf-8') as f:
        #     r_list = f.readlines() # 读取全部的内容，返回的是一个列表
        # if book_name_old in r_list:
        #     book_name_new = input("请输入新的图书名称")
        pass
    elif r=="3":
        pass
    elif r=="4":
        with open("book.txt",'r',encoding='utf-8') as f:
            print(f.readlines())
    elif r=="5":
        print("欢迎下次光临！")
        break
"""
#综合案例二：学生信息新增
def student_info(num): # 根据传入的对象，控制加几个学生信息
    i = 0 # 循环变量
    r_list = [] # 收集每一个学生信息，添加到列表里
    while i<num: # 循环
        name = input("请输入学生的姓名：")
        address = input("请输入学生的地址：")
        phone_number = input("请输入学生的手机号：")
        sex = input("请输入学生的性别：")
        s_id = input("请输入学生的学号：")
        # 把学生信息整理成一个字符串
        str_obj = f"学号：{s_id}，学生性别为：{sex}，学生手机号为：{phone_number}，学生家庭地址为：{address}，学生姓名为：{name}\n"
        # 把这个字符串添加到列表里
        r_list.append(str_obj)
        i+=1
    # 最后写入到文件流里面
    with open("student_info.txt",'a',encoding='utf-8') as f:
        f.writelines(r_list) # 可以把一个列表写进入，他会按照列表里面的每一个对象进行写入
student_info(2)

















